package com.taobao.api.domain;

import java.util.Date;

import com.taobao.api.TaobaoObject;
import com.taobao.api.internal.mapping.ApiField;

/**
 * 国内机票，订单基本信息数据结构【top订单优化】
 *
 * @author auto create
 * @since 1.0, null
 */
public class BaseInfo extends TaobaoObject {

  private static final long serialVersionUID = 7635646711227186354L;

  /**
   * 买家支付宝帐号
   */
  @ApiField("account_no")
  private String            accountNo;

  /**
   * 支付宝交易号
   */
  @ApiField("alipay_trade_no")
  private String            alipayTradeNo;

  /**
   * 订单出票方式==> 1:手工hk;2:自动出票;3:自动hk手工出票
   */
  @ApiField("book_way")
  private Long              bookWay;

  /**
   * 佣金，单位：分
   */
  @ApiField("commission")
  private String            commission;

  /**
   * 佣金比率
   */
  @ApiField("commission_discount")
  private String            commissionDiscount;

  /**
   * 订单创建时间
   */
  @ApiField("create_time")
  private Date              createTime;

  /**
   * 扩展信息
   */
  @ApiField("extra")
  private String            extra;

  /**
   * 是否强制保险订单，有一张票为强制保险即为true
   */
  @ApiField("force_insure")
  private Boolean           forceInsure;

  /**
   * 是否保险分润订单，有一个乘机人支持分润即为 True
   */
  @ApiField("insure_promotion")
  private Boolean           insurePromotion;

  /**
   * 订单表最近一次修改时间
   */
  @ApiField("modify_time")
  private Date              modifyTime;

  /**
   * 订单淘宝唯一主键
   */
  @ApiField("order_id")
  private Long              orderId;

  /**
   * 订单最晚支付时间
   */
  @ApiField("pay_latest_time")
  private Date              payLatestTime;

  /**
   * 订单支付状态==>
   * 0:未付款;1:已付款，冻结买家定金;2:付款给卖家;3:解冻定金给买家;4:已扣佣;5:交易关闭;6:确认可支付;7:确认不可支付
   */
  @ApiField("pay_status")
  private Long              payStatus;

  /**
   * 联系人邮箱
   */
  @ApiField("relation_email")
  private String            relationEmail;

  /**
   * 联系人手机号
   */
  @ApiField("relation_mobile")
  private String            relationMobile;

  /**
   * 联系人姓名
   */
  @ApiField("relation_name")
  private String            relationName;

  /**
   * 联系人备用电话
   */
  @ApiField("relation_phone_bak")
  private String            relationPhoneBak;

  /**
   * 关联订单号，普通往返另一程订单号，仅两程订单为同一个代理商时提供
   */
  @ApiField("relative_order_id")
  private Long              relativeOrderId;

  /**
   * 订单状态定义==>
   * 0:未付款;(注：支持保险分润时，订单已付款，保险未付款也为0)1:处理中;2:确定出票;3:预定成功;4:预定失败;5:处理中超时失效;6:
   * 支付超时失效;7:买家取消
   */
  @ApiField("status")
  private Long              status;

  /**
   * 总金额，所有乘机人加机建燃油，单位：分
   */
  @ApiField("total_price")
  private Long              totalPrice;

  /**
   * 航程类型：0，单程；1，普通往返；2，多程（暂时没有使用）；3，特价往返
   */
  @ApiField("trip_type")
  private Long              tripType;

  public String getAccountNo() {
    return this.accountNo;
  }

  public void setAccountNo(String accountNo) {
    this.accountNo = accountNo;
  }

  public String getAlipayTradeNo() {
    return this.alipayTradeNo;
  }

  public void setAlipayTradeNo(String alipayTradeNo) {
    this.alipayTradeNo = alipayTradeNo;
  }

  public Long getBookWay() {
    return this.bookWay;
  }

  public void setBookWay(Long bookWay) {
    this.bookWay = bookWay;
  }

  public String getCommission() {
    return this.commission;
  }

  public void setCommission(String commission) {
    this.commission = commission;
  }

  public String getCommissionDiscount() {
    return this.commissionDiscount;
  }

  public void setCommissionDiscount(String commissionDiscount) {
    this.commissionDiscount = commissionDiscount;
  }

  public Date getCreateTime() {
    return this.createTime;
  }

  public void setCreateTime(Date createTime) {
    this.createTime = createTime;
  }

  public String getExtra() {
    return this.extra;
  }

  public void setExtra(String extra) {
    this.extra = extra;
  }

  public Boolean getForceInsure() {
    return this.forceInsure;
  }

  public void setForceInsure(Boolean forceInsure) {
    this.forceInsure = forceInsure;
  }

  public Boolean getInsurePromotion() {
    return this.insurePromotion;
  }

  public void setInsurePromotion(Boolean insurePromotion) {
    this.insurePromotion = insurePromotion;
  }

  public Date getModifyTime() {
    return this.modifyTime;
  }

  public void setModifyTime(Date modifyTime) {
    this.modifyTime = modifyTime;
  }

  public Long getOrderId() {
    return this.orderId;
  }

  public void setOrderId(Long orderId) {
    this.orderId = orderId;
  }

  public Date getPayLatestTime() {
    return this.payLatestTime;
  }

  public void setPayLatestTime(Date payLatestTime) {
    this.payLatestTime = payLatestTime;
  }

  public Long getPayStatus() {
    return this.payStatus;
  }

  public void setPayStatus(Long payStatus) {
    this.payStatus = payStatus;
  }

  public String getRelationEmail() {
    return this.relationEmail;
  }

  public void setRelationEmail(String relationEmail) {
    this.relationEmail = relationEmail;
  }

  public String getRelationMobile() {
    return this.relationMobile;
  }

  public void setRelationMobile(String relationMobile) {
    this.relationMobile = relationMobile;
  }

  public String getRelationName() {
    return this.relationName;
  }

  public void setRelationName(String relationName) {
    this.relationName = relationName;
  }

  public String getRelationPhoneBak() {
    return this.relationPhoneBak;
  }

  public void setRelationPhoneBak(String relationPhoneBak) {
    this.relationPhoneBak = relationPhoneBak;
  }

  public Long getRelativeOrderId() {
    return this.relativeOrderId;
  }

  public void setRelativeOrderId(Long relativeOrderId) {
    this.relativeOrderId = relativeOrderId;
  }

  public Long getStatus() {
    return this.status;
  }

  public void setStatus(Long status) {
    this.status = status;
  }

  public Long getTotalPrice() {
    return this.totalPrice;
  }

  public void setTotalPrice(Long totalPrice) {
    this.totalPrice = totalPrice;
  }

  public Long getTripType() {
    return this.tripType;
  }

  public void setTripType(Long tripType) {
    this.tripType = tripType;
  }

}
